<?php
/**
 * Notes:
 * User:ZSLAA
 * DateTime: 2020/11/4 15:37
 */

namespace app\admin\controller;


use app\admin\Base\BaseController;
use OSS\OssClient;
use think\facade\Request;
use think\Filesystem;

class common extends BaseController
{
    //单图片上传
    public function upload1(){
        $file = request()->file('file');
        // 移动到框架应用根目录/uploads/ 目录下
        try{
            // 验证
            validate(['imgFile'=>[
                'fileSize' => 410241024,
                'fileExt' => 'jpg,jpeg,png,bmp,gif',
                'fileMime' => 'image/jpeg,image/png,image/gif',
            ]])->check(['imgFile' => $file]);
            // 上传图片到本地服务器
            $saveName = \think\facade\Filesystem::disk('public')->putFile('',$file);
            $arr = ['msg' => '成功','code' => 1, 'data' => '/public/upload/'.$saveName];
            return json($arr);
        } catch (\Exception $e) {
            // 验证失败 输出错误信息
            return $this->exceptionHandle($e,'图片上传失败!' . $e->getMessage(),'json','');
        }
    }

    public function upload(){
        $files = $_FILES['file'];
        $name = $files['name'];
        $format = strrchr($name, '.');//截取文件后缀名如 (.jpg)
        // 阿里云主账号AccessKey拥有所有API的访问权限，风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维，请登录RAM控制台创建RAM账号。
        $accessKeyId = "LTAI4G4E4Ga2azzTeZZuSKkF";
        $accessKeySecret = "9gj3CYFXAhGEMSo8EIVkXYndQQoo4W";
        // Endpoint
        $endpoint = "http://oss-cn-hongkong.aliyuncs.com";
        // 设置存储空间名称。
        $bucket= "91fh";
        // 设置文件名称。
        //这里是由sha1加密生成文件名 之后连接上文件后缀，生成文件规则根据自己喜好，也可以用md5
        //前面video/head/ 这是我的oss目录
        $object = 'upload/images/'.date('Y', time()).'/' .date('m', time()).'/'. uniqid() . $format;;
        // <yourLocalFile>由本地文件路径加文件名包括后缀组成，例如/users/local/myfile.txt。
        $filePath = $files['tmp_name'];
        try{
            $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);

            $result = $ossClient->uploadFile($bucket, $object, $filePath);
            if(!$result){
                return json(['code'=>0,'msg'=>'上传失败']);
            }else{
                return json(['code'=>1,'msg'=>'上传成功','data'=>$result['info']['url']]);
            }
        } catch(OssException $e) {
            printf(__FUNCTION__ . ": FAILED\n");
            printf($e->getMessage() . "\n");
            return;
        }
        print(__FUNCTION__ . ": OK" . "\n");
    }
}